package study;

public class TestThread4 {
    public static void main(String[] args) {
        MyThread2 thread2 = new MyThread2("我的线程");
        thread2.start();

        try {
            // 调用join()方法合并线程，将子线程mythread合并到主线程里面
            thread2.join();
            // 合并线程后，程序的执行的过程就相当于是方法的调用的执行过程
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        for (int i = 0; i <= 5; i++) {
            System.out.println("I am main Thread");
        }
    }
}


class MyThread2 extends Thread {
    /**
     * 重载构造方法，传入参数，
     * 使用super关键字调用父类的构造方法：“public Thread(String name)”
     * 通过这样的构造方法可以给新开辟的线程命名，便于管理线程
     */
    MyThread2(String s) {
        super(s);
    }

    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            //使用父类Thread里面定义的
            //public final String getName() {
            //        return name;
            //    }
            System.out.println("I am a\t" + getName());
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                return;
            }
        }
    }
}